/**
 * Created by hxpeng on 2017/3/24.
 */
(function () {
    'use strict';
    angular.module('App.common')
        .config(ApiCodeInterceptorConfiguration);
    function ApiCodeInterceptorConfiguration($httpProvider) {

        function ApiCodeInterceptor($window, $injector,$q) {
            return {
                request: function(config){
                    $injector.get('AppUtils').loading();
                    config.headers.auth_token = '1111';//设置请求头
                    return config;
                },
                requestError: function(err){
                    $injector.get('AppUtils').loadfinish();
                    //$injector.get('AppUtils').loadfinish();
                    return $q.reject(err);
                },
                response: function(res){
                    $injector.get('AppUtils').loadfinish();
                    return $q.resolve(res);
                },
                responseError: function(err){
                    var $AppUtils = $injector.get('AppUtils');
                    $AppUtils.loadfinish();
                    if(-1 === err.status) {
                        $AppUtils.showAlert("远程服务器无响应!");
                    } else if(404 === err.status) {
                        $AppUtils.showAlert("颯，找不到资源。。。。");
                    } else if(401 === err.status) {
                        console.log(err);
                        if(!$AppUtils.isUndefinedOrNull(err.data)){
                            console.log("跳转页面到：" + err.data);
                            $window.location.href = err.data;
                            return false;
                            //event.preventDefault();
                            //console.log(1111111111111111);
                        }
                    } else if(400 === err.status) {
                        $AppUtils.showAlert("非法提交！");
                    } else {
                        $AppUtils.showAlert("发生错误,代码：" + err.status);
                    }
                    return $q.reject(err);
                }
            }
        }
        $httpProvider.interceptors.push(ApiCodeInterceptor)
    }
})();